import sys

from PyQt5.QtWidgets import QApplication, QWidget, QLabel, QHBoxLayout, QVBoxLayout, QTableWidget, QTableWidgetItem
from PyQt5.QtGui import QFont

from FileOperate import ExcelOperate

'''
学生只有一个功能：查看自己的信息
'''
class StuSysWindow(QWidget):
    def __init__(self, id):
        super().__init__()
        self.__excel_operate_obj = ExcelOperate("stuLists.xlsx")
        self.setup_ui(id)
    
    def setup_ui(self, id):
        # 先从Excel表格中查询该学生的所有的个人信息
        stu_message = self.__excel_operate_obj.query_message("stuLists", id)

        self.setWindowTitle("学生系统")
        self.resize(750, 500)
        self.move(500, 200)
        # 创建一个用于显示学生信息的表格
        information_table = QTableWidget(1, 7)
        information_table.setHorizontalHeaderLabels(['姓名', '年龄', '性别', '籍贯', '学号', '学院', '专业'])
        # 向表格中加入信息
        # self.setItem(0,0,QTableWidgetItem("张三"))
        information_table.setItem(0, 0, QTableWidgetItem(stu_message["name"]))
        information_table.setItem(0, 1, QTableWidgetItem(str(stu_message["age"])))
        information_table.setItem(0, 2, QTableWidgetItem(stu_message["sex"]))
        information_table.setItem(0, 3, QTableWidgetItem(stu_message["birthPlace"]))
        information_table.setItem(0, 4, QTableWidgetItem(stu_message["id"]))
        information_table.setItem(0, 5, QTableWidgetItem(stu_message["college"]))
        information_table.setItem(0, 6, QTableWidgetItem(stu_message["major"]))

        # 这里要                                                                                                                                                                                                                                                                                                                                                                                           通过读取Excel表格查找信息，再添加到表格中
        label = QLabel("您的个人信息如下")
        label.setFont(QFont("Roman times", 20, QFont.Bold))
        hbox1 = QHBoxLayout()
        hbox1.addWidget(label)

        hbox2 = QHBoxLayout()
        hbox2.addWidget(information_table)

        vbox = QVBoxLayout()
        vbox.addLayout(hbox1)
        vbox.addLayout(hbox2)

        self.setLayout(vbox)


if __name__ == '__main__':
    app = QApplication(sys.argv)
    stuSysWindow = StuSysWindow()
    stuSysWindow.show()
    sys.exit(app.exec_())